package com.zmn.oms.dubbo.interfaces.callcenter;

import com.zmn.common.dto.ResponseDTO;
import com.zmn.oms.dubbo.dto.zmn.callcenter.dio.EsOrderDIO;
import com.zmn.oms.dubbo.dto.zmn.callcenter.dro.CcOrderDRO;
import com.zmn.oms.dubbo.dto.zmn.callcenter.dro.EsOrderDRO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

import java.util.Date;
import java.util.List;

/**
 * 描述: 呼叫中心 es 查询统计
 *
 * @author wangjie
 * @date 14:41 2019/3/14
 **/
@Api(value = "cc订单查询服务", tags = {"订单查询服务"})
public interface CallCenterEsOrderRemoteService {

    /**
     * 描述: 根据条件查询es order 数据 根据操作人分组
     *
     * @param esOrderDIO 查询条件
     * @return java.util.List<com.zmn.oms.dubbo.dto.zmn.callcenter.dro.EsOrderDRO>
     * @author wangjie
     * @date 14:58 2019/3/14
     **/
    ResponseDTO<EsOrderDRO> findEsOrderGroupByOperatorId(EsOrderDIO esOrderDIO);

    /**
     * 按电话查询订单
     * @param phone
     * @return
     */
    @ApiOperation(value = "按电话查询订单", response = com.zmn.common.dto2.ResponseDTO.class, tags = {"按电话查询订单", "呼叫系统"}, notes = "CC调用")
    com.zmn.common.dto2.ResponseDTO<List<CcOrderDRO>> listOrderByPhone(@ApiParam(value = "手机号或者座机", required = true) String phone);

    /**
     * 按时间查询过保订单
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return
     */
    @ApiOperation(value = "按时间查询过保订单", response = com.zmn.common.dto2.ResponseDTO.class, tags = {"按时间查询过保订单", "呼叫系统"}, notes = "CC调用")
    com.zmn.common.dto2.ResponseDTO<List<CcOrderDRO>> listExpiredWarrantyOrder(@ApiParam(value = "开始时间", required = true) Date startTime,
                                                                         @ApiParam(value = "结束时间", required = true) Date endTime);
}
